/**
 * Copyright (c) iwindplus Technologies Co., Ltd.2024-2030, All rights reserved.
 */

package com.iwindplus.boot.util;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 国际化工具类.
 *
 * @author zengdegui
 * @since 2023/08/12 17:26
 */
public class I18nUtil {

    /**
     * ResourceBundle.
     */
    private ResourceBundle bundle;

    /**
     * 构造方法.
     *
     * @param baseName 文件基础名
     * @param locale   语言
     */
    public I18nUtil(String baseName, Locale locale) {
        this.bundle = ResourceBundle.getBundle(baseName, locale);
    }

    /**
     * 实例化.
     *
     * @param baseName 文件基础名
     * @return I18nUtil
     */
    public static I18nUtil getInstance(String baseName) {
        return new I18nUtil(baseName, Locale.getDefault());
    }

    /**
     * 实例化.
     *
     * @param baseName 文件基础名
     * @param locale   语言
     * @return I18nUtil
     */
    public static I18nUtil getInstance(String baseName, Locale locale) {
        return new I18nUtil(baseName, locale);
    }

    /**
     * 获取值.
     *
     * @param key 键
     * @return String
     */
    public String getString(String key) {
        return this.bundle.getString(key);
    }

    /**
     * 格式化.
     *
     * @param key  键
     * @param args 值
     * @return String
     */
    public String getFormattedString(String key, Object... args) {
        return MessageFormat.format(this.getString(key), args);
    }
}
